package p23_类型转换与绑定.高层转换接口的五个实现;

import lombok.Data;
import org.springframework.beans.BeanWrapperImpl;

import java.util.Date;

/**
 * 利用反射为bean的属性赋值
 * 如果赋的值与bean属性类型不一致，则底层会使用类型转换器转换
 * 这种方式的bean，必须有set方法
 */
public class _2_BeanWrapperImpl {

    public static void main(String[] args) {
        MyBean bean = new MyBean();
        BeanWrapperImpl beanWrapper = new BeanWrapperImpl(bean);
        //给bean的三个字段赋值，如果字段类型与给的类型不一样，则使用类型转换功能
        beanWrapper.setPropertyValue("a", "12");
        beanWrapper.setPropertyValue("b", 3333);
        beanWrapper.setPropertyValue("c", "1999/12/12");
        System.out.println(bean);
    }

    @Data
    static class MyBean {
        private int a;
        private String b;
        private Date c;
    }
}
